package org.spring.springboot.app.sys.office.service;

import org.spring.springboot.app.base.R;
import org.spring.springboot.app.sys.office.domain.bo.AgentTypeOfficeBO;
import org.spring.springboot.app.sys.office.domain.po.SysOfficePO;
import org.spring.springboot.app.sys.office.domain.po.SysOfficeWalletPO;
import org.spring.springboot.app.sys.office.domain.vo.InsertSysOfficeReqVO;
import org.spring.springboot.app.sys.office.domain.vo.SysOfficeAllResVO;

import java.math.BigDecimal;
import java.util.List;

/**
 * 系统菜单  接口类
 */


public interface ISysOfficeService {

    SysOfficePO find(String id);
    /**
     * 查看所有机构信息
     * @return
     */
    List<SysOfficeAllResVO> findAll();

    /**
     * 根据机构Id信息
     * @return
     */
    List<SysOfficeAllResVO> findOfficeId(String id,String str);

    /**
     * @param sysOffice
     * @return
     */
    int save(InsertSysOfficeReqVO sysOffice);

    /**
     * @param sysOffice
     * @return
     */
    int update(InsertSysOfficeReqVO sysOffice);

    /**
     * @param sysOfficePO
     * @return
     */
    int delete(SysOfficePO sysOfficePO);

    /**
     * 根据条件查询所有机构信息
     * @return
     */
    List<SysOfficeAllResVO> findAllBySysOffice(String[] type,String parent_id);

    /**
     * 根据机构ID查询机构下的代理商分类信息
     */
    List<AgentTypeOfficeBO> findAgentTypeByOfficeId(String officeId);

    List<SysOfficeAllResVO> findOfficeChildrenByPId(String officePId,String type);

    R addOffice(InsertSysOfficeReqVO sysOffice);

    /**
     * 根据区域查询总代
     * @param areaId
     * @return
     */
    SysOfficePO queryAreaGeneralAgent(String areaId);

    SysOfficeWalletPO queryWallet(String id);

    int addOfficeMo(String id, BigDecimal mo, int type, String relateId, String relateExtId, String remark);

    int subOfficeMo(String id, BigDecimal mo, int type, String relateId, String relateExtId, String remark);
}
